This is a continuation application of and claims priority to the U.S. patent application Ser. No. 13/089,442 filed Apr. 19, 2011, entitled “Massively Scalable Object Storage System,” which claims the benefit of U.S. provisional patent application 61/450,166, filed Mar. 8, 2011, entitled “Massively Scalable File Storage System.” This application also claims priority to U.S. provisional patent application 61/479,299, filed Apr. 26, 2011, entitled “Multi-Region replication System.” This application is also related to co-pending non-provisional U.S. patent applications Ser. Nos. 13/089,476, 13/089,487, and 13/089,510, all filed Apr. 19, 2011. The entirety of these disclosures is hereby incorporated herein by reference.
The present disclosure relates generally to cloud computing, and more particularly to a massively scalable object storage system to provide storage for a cloud computing environment. Cloud computing services can provide computational capacity, data access, networking/routing and storage services via a large pool of shared resources operated by a cloud computing provider. Because the computing resources are delivered over a network, cloud computing is location-independent computing, with all resources being provided to end-users on demand with control of the physical resources separated from control of the computing resources.
As a term, “cloud computing” describes a consumption and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provisioning of dynamically scalable and often virtualized resources. This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own computer. Details are abstracted from consumers, who no longer have need for expertise in, or control over, the technology infrastructure “in the cloud” that supports them. Most cloud computing infrastructures consist of services delivered through common centers and built on servers. Clouds often appear as single points of access for consumers' computing needs, and do not require end-user knowledge of the physical location and configuration of the system that delivers the services.
Because the flow of services provided by the cloud is not directly under the control of the cloud computing provider, cloud computing requires the rapid and dynamic creation and destruction of computational units, frequently realized as virtualized resources. Maintaining the reliable flow and delivery of dynamically changing computational resources on top of a pool of limited and less-reliable physical servers provides unique challenges. Accordingly, it is desirable to provide a better-functioning cloud computing system with superior operational capabilities.